home *** CD-ROM | disk | FTP | other *** search
/ SoundMaker 2003 (Professional Edition) / SoundMaker 2003 - Professional Edition.iso / midi tool / midioxse.exe / DATA.1 / PyDemo.pys < prev    next >
Text File  |  1999-11-26  |  3KB  |  95 lines

  1. # MIDIOX Test -- Python Script
  2. # Copyright (c) 2000 by Jamie O'Connell
  3. #
  4. # This script is an example of using MIDI-OX scripting with Python
  5.  
  6. global mox
  7.  
  8. # Wsh version
  9. moxStr = WScript.Name + " ver. " + WScript.Version
  10. WScript.echo( moxStr )
  11.  
  12. # Create object
  13. mox = WScript.CreateObject("MoxKart.MoxWire.1")  
  14.  
  15. moxStr = "MIDI-OX"
  16. n = mox.NumberInstances
  17. if n > 0:
  18.    moxStr = moxStr + ":" + str( n )
  19. else:
  20.    WScript.echo( "No Instances, Launching" )
  21.    mox.LaunchInstance()
  22.     
  23. moxStr = moxStr + " Ver:"
  24. moxStr = moxStr + mox.GetAppVersion()
  25.  
  26. WScript.echo( moxStr )
  27.  
  28. n = mox.NumberInstances
  29. if n > 0:
  30.    nInst = 1
  31.    if mox.AttachInstance( nInst ) == 1:
  32.       moxStr = "Attached Instance: %d" % nInst
  33.       WScript.echo( moxStr )
  34.    else:
  35.       moxStr = "Couldn't Attach Instance: %d" % nInst
  36.       WScript.echo( moxStr )
  37.     
  38.  
  39. # *** System devices
  40. moxStr = "Sys MIDI In Devices: %d" % mox.NumSysMidiIn
  41. strWrk = mox.GetFirstSysMidiInDev()
  42. while strWrk != "":
  43.  moxStr = moxStr + "\n  " + strWrk
  44.  strWrk = mox.GetNextSysMidiInDev()
  45.  
  46. WScript.echo( moxStr ) 
  47.  
  48. moxStr = "Sys MIDI Out Devices: %d" % mox.NumSysMidiIn
  49. strWrk = mox.GetFirstSysMidiOutDev()
  50. while strWrk != "":
  51.  moxStr = moxStr + "\n  " + strWrk
  52.  strWrk = mox.GetNextSysMidiOutDev()
  53.  
  54. WScript.echo( moxStr ) 
  55.  
  56. # *** MIDI-OX devices
  57. if mox.IsAttached == 1:
  58.    moxStr = "Open MIDI In Devices: %d" % mox.NumOpenMidiIn
  59.    strWrk = mox.GetFirstOpenMidiInDev()
  60.    while strWrk <> "":
  61.       moxStr = moxStr + "\n  " + strWrk
  62.       strWrk = mox.GetNextOpenMidiInDev()
  63.    WScript.echo( moxStr )
  64.    
  65. if mox.IsAttached == 1:
  66.    moxStr = "Open MIDI Out Devices: %d" % mox.NumOpenMidiOut
  67.    strWrk = mox.GetFirstOpenMidiOutDev()
  68.    while strWrk <> "":
  69.       moxStr = moxStr + "\n  " + strWrk
  70.       strWrk = mox.GetNextOpenMidiOutDev()
  71.    WScript.echo( moxStr ) 
  72.  
  73. if mox.IsAttached == 1:
  74.    mox.DivertMidiInput = 1
  75.    mox.FireMidiInput = 0   
  76.    WScript.echo( "Press OK to enter MIDI Loop. Use MIDI-OX | Exit WScript to end." )
  77.    while mox.ShouldExitScript == 0:
  78.       # First try raw Input
  79.       msg = mox.GetMidiInputRaw()    
  80.       if msg != 0:
  81.          stat = msg & 0x0FF
  82.          msg  = msg >> 8     # pull off stat
  83.          dat1 = msg & 0x07F
  84.          msg  = msg >> 8     # pull off dat1
  85.          dat2 = msg & 0x07F
  86.          if stat == 0x0F0:      # SysEx, must ask for SysEx string message
  87.         strSysEx = mox.GetSysExInput()
  88.             mox.SendSysExString( strSysEx )
  89.          else:         
  90.         mox.OutputMidiMsg( stat, dat1, dat2 )
  91.      
  92.    mox.DivertMidiInput = 0
  93.  
  94. WScript.echo( "End Demo" )
  95.